﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;// necesario para leer los controles de webform 
using EO.Web;// necesario para leer controle agregados EoWEB
using System.Data;// leer los dataset etc
using BDConn;

//Clase creada para codificar los querys.(consultas)
//Equipo 2.
//Integrantes: Bernal, Quiroz, Rivas y Valenzuela.
namespace Reportes_
{
    public class consultas
    {
        BDClass miBD = new BDClass(BDClass.cadConn); // LLAMA LA CLASE DE CONEXION


        // .........................INICIO DE LOS METODOS PARA LAS CONSULTAS A LOS PROFESORES...................................



        // SELECT DE LA OPCION DE PROFESOR......................................................................................
        public void LeerProfesores(DatePicker Fechainicio, DatePicker Fechafin, GridView Gv_Prof, DropDownList ddl_prof )
        {
            DataSet Leer = miBD.LeerRegistros(@"SELECT p.nombre, a.nombre as anombre, r.hrRegistro, MINUTE(r.hrRegistro) AS diferencia, r.cantidadAlumnos,r.fechaRegistro FROM profesores AS p, asignaturas AS a, 
                                               registros as r, horarios AS h WHERE p.nombre='" + ddl_prof.Text.ToString()+ 
                                               "' AND h.idHorario=r.idHorario AND h.idProfesor=p.idProfesor AND h.idasignatura=a.idasignatura AND r.fechaRegistro BETWEEN '" +
                                              Fechainicio.SelectedDate.ToString("yyyy-MM-dd") + "' AND '"+
                                              Fechafin.SelectedDate.ToString("yyyy-MM-dd") + "';");

    
            Gv_Prof.DataSource = Leer;
            Gv_Prof.DataBind();
        }
        //SELECT DE LA OPCION "TODOS" EN PROFESORES..............................................................................
        public void LeerTodosProfesores(DatePicker Fechainicio, DatePicker Fechafin, GridView Gv_Prof, DropDownList ddl_prof)
        {
            DataSet LeerTodos = miBD.LeerRegistros(@"SELECT p.nombre, a.nombre as anombre, r.hrRegistro,MINUTE(r.hrRegistro) AS diferencia, r.cantidadAlumnos, r.fechaRegistro FROM profesores AS p, asignaturas AS a, 
                                                    registros as r, horarios AS h WHERE h.idHorario=r.idHorario AND 
                                                    h.idProfesor=p.idProfesor AND h.idasignatura=a.idasignatura AND r.fechaRegistro BETWEEN '" +
                                                   Fechainicio.SelectedDate.ToString("yyyy-MM-dd") + "' AND '" +
                                                   Fechafin.SelectedDate.ToString("yyyy-MM-dd") + "' GROUP BY  r.idRegistro;");


            Gv_Prof.DataSource = LeerTodos;
            Gv_Prof.DataBind();        
        }

        // Carga el nombre de los maestro en el dropdownloist.......................................................................
        public void CargarProfesores(DropDownList ddl_prof)
        {
            DataTable dt = miBD.leer("SELECT nombre FROM profesores GROUP BY nombre;");
                   foreach(DataRow dr in dt.Rows)
                   {
                       ddl_prof.Items.Add(dr["nombre"].ToString());                      
                   }
        }
        //...............................................FIN DE PROFESORES.........................................................
       

        // .........................................INICIO DE LAS CONSULTA DE LOS GRUPOS...........................................
       
        
        // CONSULTA PARA LEER EL REPORTE POR FECHA DE LA ASISTENCIA DE LOS GRUPOS..................................................

        public void LeerGrupos(DatePicker FechaInicio, DatePicker FechaFin, GridView Gv_grupos, DropDownList ddl_grupo)
        {
//            DataSet Leer = miBD.LeerRegistros(@"SELECT g.nombre, a.nombre as anombre, r.cantidadAlumnos, (select cantidadAlumnos from gruposAlumnos where idgrupo=h.idgrupo and fecha=max(fecha)) as poblacion, r.fechaRegistro
//                                                From grupos AS g, asignaturas AS a, registros AS r, horarios AS h
//                                               WHERE g.nombre='" + ddl_grupo.Text.ToString() + "' AND h.idHorario=r.idHorario AND h.idAsignatura=a.idAsignatura AND g.idGrupo=h.idGrupo AND fechaRegistro BETWEEN '" + FechaInicio.SelectedDate.ToString("yyyy-MM-dd") +
//                                              "' AND '" + FechaFin.SelectedDate.ToString("yyyy-MM-dd") + "' ORDER BY r.cantidadAlumnos DESC;");

            DataSet Leer = miBD.LeerRegistros(@"SELECT g.nombre, a.nombre as anombre, r.cantidadAlumnos, g.poblacion, r.fechaRegistro
                                                From grupos AS g, asignaturas AS a, registros AS r, horarios AS h
                                               WHERE g.nombre='" + ddl_grupo.Text.ToString() + "' AND h.idHorario=r.idHorario AND h.idAsignatura=a.idAsignatura AND g.idGrupo=h.idGrupo AND fechaRegistro BETWEEN '" + FechaInicio.SelectedDate.ToString("yyyy-MM-dd") +
                                       "' AND '" + FechaFin.SelectedDate.ToString("yyyy-MM-dd") + "' ORDER BY r.cantidadAlumnos DESC;");



        Gv_grupos.DataSource = Leer;
        Gv_grupos.DataBind();
        }

       // Filtrar los grupos existentes en el drop down list........................................................................
        public void Cargar_Grupos(DropDownList ddl_grup)
        {
            DataTable dt = miBD.leer("SELECT nombre FROM  grupos;");
                foreach (DataRow dr in dt.Rows)
                { 
                ddl_grup.Items.Add(dr["nombre"].ToString());
                }
        }
    
        //............................................... FIN DE CONSULTA DE GRUPOS...................................................

    }
}